export function deepMerge(target, merged) {
  for (const key in merged) {
    // eslint-disable-next-line no-prototype-builtins
    if (merged.hasOwnProperty(key)) {
      target[key] =
        target[key] && target[key].toString() === "[object Object]"
          ? deepMerge(target[key], merged[key])
          : (target[key] = merged[key]);
    }
  }
  return target;
}

export function mapListForValue(list = [], obj = {}) {
  return list.map((item) => ({
    name: item.name,
    value: obj[item.key],
  }));
}

// export function parsePointZString(pointStr) {
//   // 正则表达式匹配浮点数
//   const regex = /(-?\d+(\.\d+)?)/g
//   let matches = []
//   let match

//   // 提取所有匹配的数字
//   while ((match = regex.exec(pointStr)) !== null) {
//     matches.push(parseFloat(match[0]))
//   }

//   // 检查是否找到三个坐标
//   if (matches.length !== 3) {
//     return null
//   }

//   return matches
// }
// export function isFilenameValid(filename) {
//   return !(new RegExp("[<>:/\\|?*\"]|[\0-\31]").test(filename) || filename.length > 255);
// }
// 数组计算总和
export function isTotal(data) {
  var total = data.reduce(function (a, b) {
    return a + b;
  }, 0);
  return total;
}
// 计算某以数据之前总和
export function beforeTotal(data, idx) {
  // let arr = [];
  // data.map((i) => {
  //   arr.push(i.total);
  // });
  return isTotal(data.slice(0, idx));
}
// 判断json
export function isJSON(str) {
  try {
    JSON.parse(str);
    return true;
  } catch (e) {
    return false;
  }
}

// 数字转时间
export function millisecondsToDate(num) {
  var date = new Date(num);
  return date.toISOString().slice(0, 19).replace('T', ' '); // ISO格式转换为更易读的格式
}
